package cn.net.sinodata.system.domain;

import cn.net.sinodata.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;

/**
 * 交易报文要素定义配置对象 pm_element_def
 *
 * @author yinliangyun
 * @date 2025-10-30
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("pm_element_def")
public class PmElementDef extends BaseEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id")
    private String id;

    /**
     * 要素英文名称
     */
    private String enName;

    /**
     * 要素中文名称
     */
    private String cnName;

    /**
     * 要素类型
     */
    private String elementType;

    /**
     * 渠道编号
     */
    private String channelId;

    /**
     * 渠道名称
     */
    private String channelName;

    /**
     * 循环体标志（0：非循环体，1：循环体）
     */
    private String loopFlag;

    /**
     * 循环体英文名称
     */
    private String loopBodyEnName;

    /**
     * 循环体要素顺序
     */
    private String loopElementSort;

    /**
     * 要素归类（0-报文模版要素 1-唯一性校验要素）
     */
    private String elementClassify;

    /**
     * 要素所属英文名
     */
    private String fatherEnName;

    /**
     * 映射英文名称
     */
    private String mapElementEnName;

    /**
     * 映射类型（1-报文模版类型，2-唯一性校验类型）
     */
    private String mapType;

    /**
     * 要素长度
     */
    private String elementLength;

    /**
     * 要素默认值
     */
    private String defaultValue;

    /**
     * 创建机构
     */
    private String createOrg;

    /**
     * 删除标志（0-存在 1-删除）
     */
    //@TableLogic
    private String delFlag;

}
